#define WIN32_LEAN_AND_MEAN
#include <windows.h>

void SetHelicopterThrust(double ThrustOnTailEngine_YawControl, double ThrustOnMainEngine_AltitudeControl); /*(0.0-100[%])*/
void GetHelicopterThrust(double *ThrustOnTailEngine_YawControl, double *ThrustOnMainEngine_AltitudeControl); /*(0.0-100[%])*/
bool HalInit(LPCWSTR serial_port_name);
void HalDeInit(void);
void HalTest(void);


void EnablePowerForEngines(bool enable); /* true/false */

enum AnalogMeasure_Channel
{
	ACCELX=0,
	ACCELY,
	ENG_CURRENT1,
	ENG_CURRENT2,
	BATTERY_VOLTAGE
};


double GetHelicopterAnalogMeasure(int Channel);
void SetLowVoltageLimit(double voltage);
void StartBeep(unsigned char Tone); /* 0 - 2kHz, 1 - 1kHz, 2 - 651Hz, 3 - 163Hz*/
void StopBeep(void);

unsigned long GetHelicopterIntegratedMeasures(int Channel);
void ResetIntegrators(void);
void SetIntergatorZerosOffsets(unsigned short accelx, unsigned short accely);
DWORD GetLastConnectionSignalingTime(void);
bool GetChargerStatus(double ChargerSupplyVoltage_V, double BatteryVoltage_V ,double ChargeCurrent_mA); /* return true if measures is vailid */

